home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 8 / FM Towns Free Software Collection 8.iso / t_os / edo / rex / egbcall.bas < prev    next >
BASIC Source File  |  1994-06-01  |  1KB  |  43 lines

  1. 10 'EGB CALL
  2. 20 CLEAR ,,1024,100000,4096:DEFINT A-Z:LOADM ".\egbcall.rex",0
  3. 30 DIM STACK%(32867),EGBWORK%(1000) 'スタック領域とワーク領域の確保
  4. 40 DIM GETREG&(10)                  '返りレジスタ値を得る領域の確保
  5. 50 DIM PARA%(100)                   'パラメータ領域の確保
  6. 100 '
  7. 110 'EGB初期化
  8. 120 '
  9. 130 A&=CALLM(0,0,VARPTR(STACK%(32867))+1,VARPTR(EGBWORK%(0)),1536)
  10. 140 IF A&<>0 THEN BEEP:PRINT "EGBの初期化に失敗しました":END
  11. 200 '
  12. 210 'サンプル
  13. 220 '
  14. 230 AH=1:AL=1:EDX&=3:GOSUB *EGB  '256モード以外はテキスト画面はモード3
  15. 240 SCREEN@ 0:AL=0:GOSUB *EGB    '16色はモード3 (AH,EDX&は230行で設定済)
  16. 250 AH=6:AL=1:EDX&=3:GOSUB *EGB  '両ページ表示/手前をページ1に
  17. 260 AH=5:AL=1:GOSUB *EGB         '書き込みページを1(テキスト画面)に設定
  18. 270 RANDOMIZE TIME               '線をランダムな色でランダムに1000本描く
  19. 280 FOR A=0 TO 1000
  20. 290  X0=RND(1)*640:Y0=RND(1)*479
  21. 300  X1=RND(1)*640:Y1=RND(1)*479
  22. 310  C=RND(1)*16:GOSUB *LINE
  23. 320 NEXT
  24. 330 END
  25. 500 '
  26. 510 'ラインを描く
  27. 520 '
  28. 530 *LINE
  29. 540 AH=7:AL=0:EDX&=C:GOSUB *EGB  '描画色をcに設定
  30. 550 PARA%(0)=2                   '座標点数に2をセット
  31. 560 PARA%(1)=X0:PARA%(2)=Y0      '第1点座標セット
  32. 570 PARA%(3)=X1:PARA%(4)=Y1      '第2点座標セット
  33. 580 AH=&H42:ESI&=VARPTR(PARA%(0)) '不連続線分を描くEGB機能
  34. 590 GOSUB *EGB
  35. 600 RETURN
  36. 1000 '
  37. 1010 'EGB実行部(変数が破壊される事は無い)
  38. 1020 '
  39. 1030 *EGB
  40. 1040 A&=CALLM(0,AH,AL,EBX&,ECX&,EDX&,ESI&,RET&)
  41. 1050 IF A&<>0 THEN BEEP:PRINT "EGBの実行に失敗しました":END
  42. 1060 RETURN
  43.